Stored Procedure এর উদাহরণ এবং ব্যবহার

Database Tutorials - টি-এসকিউএল (T-SQL) - Stored Procedures তৈরি এবং ব্যবহার
352

Stored Procedure (SP) হল একটি প্রোগ্রামেবল স্ক্রিপ্ট যা T-SQL এ লেখা হয় এবং SQL Server ডেটাবেসে সংরক্ষিত থাকে। এটি এক বা একাধিক SQL স্টেটমেন্টের একটি গ্রুপ হিসেবে কাজ করে যা ডেটাবেসে পুনরায় ব্যবহার করা যায়। Stored Procedure এর মাধ্যমে ডেটাবেসের কার্যক্রম যেমন ডেটা প্রবাহ, আপডেট, ইনসার্ট, ডিলিট ইত্যাদি আরও সুশৃঙ্খল ও কার্যকরীভাবে করা যায়।

Stored Procedure এর ব্যবহার

  • কাস্টম কাজ সম্পাদন: একাধিক SQL স্টেটমেন্ট একত্রে রেখে একটি নির্দিষ্ট কাজ সম্পাদন করতে।
  • পুনঃব্যবহারযোগ্য কোড: একবার তৈরি করা Stored Procedure বারবার কল করা যেতে পারে।
  • পারফরম্যান্স বৃদ্ধি: Stored Procedure কোড সার্ভারের ভিতরে রান হয়, যার ফলে ক্লায়েন্টের প্রতি SQL স্টেটমেন্টের রাউন্ড-ট্রিপ কমে যায়।
  • নিরাপত্তা: ডেটাবেস অ্যাক্সেসের নির্দিষ্ট অংশ নিয়ন্ত্রণ করতে, ব্যবহারকারীদের শুধুমাত্র Stored Procedure এর মাধ্যমে ডেটাবেসে কার্যক্রম করার অনুমতি দেয়া যায়।

Stored Procedure তৈরি এবং কল করার উদাহরণ

১. Stored Procedure তৈরি করা

ধরা যাক, আমাদের একটি Employees টেবিল আছে যার মধ্যে EmployeeID, EmployeeName, এবং Position কলাম রয়েছে। আমরা একটি Stored Procedure তৈরি করতে যাচ্ছি যা একটি নির্দিষ্ট Position এর সকল কর্মচারীর তথ্য রিটার্ন করবে।

-- Stored Procedure তৈরি করা
CREATE PROCEDURE GetEmployeesByPosition
    @Position VARCHAR(100)  -- ইনপুট প্যারামিটার
AS
BEGIN
    -- SELECT স্টেটমেন্ট
    SELECT EmployeeID, EmployeeName, Position
    FROM Employees
    WHERE Position = @Position;
END;

এখানে:

  • CREATE PROCEDURE: Stored Procedure তৈরি করার জন্য ব্যবহৃত স্টেটমেন্ট।
  • @Position: এটি একটি ইনপুট প্যারামিটার যা Stored Procedure কল করার সময় পাস করা হয়।
  • BEGIN...END: একাধিক SQL স্টেটমেন্ট নিয়ে একটি ব্লক তৈরি করা হয়, যাতে একসাথে কার্যকরী করা যায়।

২. Stored Procedure কল করা

আপনি যখন এই Stored Procedure কল করবেন, তখন ইনপুট প্যারামিটার হিসেবে Position এর মান পাস করতে হবে।

-- Stored Procedure কল করা
EXEC GetEmployeesByPosition @Position = 'Manager';

এটি Manager পজিশনের সকল কর্মচারীর তথ্য রিটার্ন করবে।


৩. Stored Procedure এর মধ্যে আউটপুট প্যারামিটার ব্যবহার

ধরা যাক, আমরা একটি Stored Procedure তৈরি করতে যাচ্ছি যা একজন কর্মচারীর মোট বেতন হিসাব করবে এবং সেই মান আউটপুট হিসেবে রিটার্ন করবে।

-- Stored Procedure আউটপুট প্যারামিটার সহ
CREATE PROCEDURE GetEmployeeSalary
    @EmployeeID INT,          -- ইনপুট প্যারামিটার
    @Salary DECIMAL OUTPUT    -- আউটপুট প্যারামিটার
AS
BEGIN
    -- Salary হিসাব করা
    SELECT @Salary = Salary
    FROM Employees
    WHERE EmployeeID = @EmployeeID;
    
    -- আউটপুট প্যারামিটার রিটার্ন করা
    PRINT 'Employee Salary: ' + CAST(@Salary AS VARCHAR);
END;

এখানে:

  • @Salary DECIMAL OUTPUT: এটি একটি আউটপুট প্যারামিটার যা Stored Procedure কল করার পর মান রিটার্ন করবে।
  • @Salary = Salary: এটি সংশ্লিষ্ট কর্মচারীর বেতন মানে আউটপুট প্যারামিটার @Salary তে সংরক্ষণ করবে।

Stored Procedure কল করা:

DECLARE @EmployeeSalary DECIMAL;

-- Stored Procedure কল করা
EXEC GetEmployeeSalary @EmployeeID = 1, @Salary = @EmployeeSalary OUTPUT;

-- আউটপুট দেখানো
PRINT 'The salary of Employee is: ' + CAST(@EmployeeSalary AS VARCHAR);

এখানে:

  • @Salary OUTPUT প্যারামিটারকে আউটপুট হিসেবে ব্যবহার করা হয়েছে এবং OUTPUT কীওয়ার্ডের মাধ্যমে সেই মান ফেরত পেয়ে ব্যবহার করা হয়েছে।

৪. Stored Procedure এ ট্রানজ্যাকশন ব্যবহার

কখনো কখনো, আপনার ডেটাবেসে একাধিক স্টেটমেন্ট একত্রে একযোগভাবে চালানো দরকার, যেমন INSERT, UPDATE বা DELETE স্টেটমেন্ট। এমন ক্ষেত্রে Transaction ব্যবহৃত হয় যাতে একসাথে সব স্টেটমেন্ট কার্যকর হয় এবং কোনো ত্রুটি ঘটলে পুরো কার্যক্রম রোলব্যাক করা যায়।

-- Stored Procedure with Transaction
CREATE PROCEDURE UpdateEmployeeSalary
    @EmployeeID INT,
    @NewSalary DECIMAL
AS
BEGIN
    BEGIN TRANSACTION;  -- ট্রানজ্যাকশন শুরু করা

    -- Salary আপডেট করা
    UPDATE Employees
    SET Salary = @NewSalary
    WHERE EmployeeID = @EmployeeID;

    -- যদি কোনো ত্রুটি না ঘটে, তবে ট্রানজ্যাকশন কমিট করা হবে
    COMMIT TRANSACTION;
    
    -- ত্রুটি হলে, রোলব্যাক
    IF @@ERROR <> 0
    BEGIN
        ROLLBACK TRANSACTION;
    END
END;

এখানে:

  • BEGIN TRANSACTION: ট্রানজ্যাকশন শুরু করা।
  • COMMIT TRANSACTION: সবকিছু সঠিক হলে পরিবর্তন সঞ্চয় করা।
  • ROLLBACK TRANSACTION: কোনো ত্রুটি হলে সব পরিবর্তন বাতিল করা।

Stored Procedure কল করা:

EXEC UpdateEmployeeSalary @EmployeeID = 1, @NewSalary = 5000;

৫. Stored Procedure এর সুবিধা

  1. পুনঃব্যবহারযোগ্যতা: একবার তৈরি করা Stored Procedure বারবার ব্যবহার করা যায়।
  2. পারফরম্যান্স: Stored Procedure ডেটাবেসে সংরক্ষিত থাকে এবং কোড এক্সিকিউট করার সময় বারবার ক্লায়েন্টের সাথে যোগাযোগ না করে কাজ সম্পাদন করা হয়, যা পারফরম্যান্স বৃদ্ধি করতে সাহায্য করে।
  3. নিরাপত্তা: ডেটাবেস অ্যাক্সেস নিয়ন্ত্রণে সাহায্য করে, আপনি ব্যবহারকারীকে শুধুমাত্র Stored Procedure কল করার অনুমতি দিতে পারেন, টেবিলের সরাসরি অ্যাক্সেস না দিয়েই।
  4. ত্রুটি হ্যান্ডলিং: TRY...CATCH ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করা যায়।

সারাংশ

  • Stored Procedure SQL Server-এ একাধিক SQL স্টেটমেন্ট একত্রে ব্যবহারের জন্য ব্যবহৃত হয়, যা পুনঃব্যবহারযোগ্য এবং কার্যকরী ডেটাবেস ম্যানেজমেন্টে সহায়ক।
  • এটি ইনপুট, আউটপুট প্যারামিটার গ্রহণ করতে পারে এবং Transaction, Error Handling, এবং Data Processing এর মতো শক্তিশালী বৈশিষ্ট্য সহ আসে।
  • Stored Procedure ডেটাবেসের কার্যক্রমের নিরাপত্তা, পারফরম্যান্স এবং কার্যকারিতা বৃদ্ধি করে।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...